1 module unde.games.dizzy.omega.animations.ground_cave; 2 3 import derelict.opengl3.gl; 4 import std.conv; 5 import std.format; 6 import std.math; 7 import std.stdio; 8 import unde.games.collision_detector; 9 import unde.games.dizzy.omega.dizzy; 10 import unde.games.dizzy.omega.main; 11 import unde.games.object; 12 import unde.games.renderer; 13 import unde.global_state; 14 15 class GroundCave:StaticGameObject 16 { 17 this(MainGameObject root) 18 { 19 frame = -1; 20 models["ground-cave"] = root.models["ground-cave"]; 21 models["ground-cave-1"] = root.models["ground-cave-1"]; 22 23 super(root); 24 } 25 26 override void draw(GlobalState gs) 27 { 28 DizzyOmega dz = cast(DizzyOmega) root; 29 30 if (root.scrx != 30 || root.scry != 68) 31 return; 32 33 glPushMatrix(); 34 if (frame < 0) 35 { 36 recursive_render(gs, models["ground-cave"]); 37 } 38 else 39 { 40 recursive_render(gs, models["ground-cave-1"]); 41 } 42 glPopMatrix(); 43 } 44 45 override bool tick(GlobalState gs) 46 { 47 return true; 48 } 49 50 override void load(string[string] s) 51 { 52 string p = "groundcave"; 53 if (p in s) 54 frame = s[p].to!(long); 55 else 56 frame = -1; 57 } 58 59 override void save(ref string[string] s) 60 { 61 if (frame >= 0) 62 { 63 string p = "groundcave"; 64 s[p] = frame.to!(string); 65 } 66 } 67 }